<template>
	<div class="wrapper">
  
	  <!-- header部分 -->
	  <header>
		<p>地址管理</p>
	  </header>
  
	  <!-- 地址列表部分 -->
	  <ul class="addresslist">
		<li v-for="item in deliveryAddressArr" :key="item.daId">
		  <div class="addresslist-left" @click="setDeliveryAddress(item)">
			<h3>{{ item.contactName }} {{ getSex(item.contactSex) }} {{ item.contactTel }}</h3>
			<p>{{ item.address }}</p>
		  </div>
		  <div class="addresslist-right">
			<i class="fa fa-edit" @click="editUserAddress(item.daId)"></i>
			<i class="fa fa-remove" @click="removeUserAddress(item.daId)"></i>
		  </div>
		</li>
	  </ul>
  
	  <!-- 新增地址部分 -->
	  <div class="addbtn" @click="toAddUserAddress">
		<i class="fa fa-plus-circle"></i>
		<p>新增收货地址</p>
	  </div>
  
	  <!-- 底部菜单部分 -->
	  <Footer />
	</div>
  </template>
  
  <script>
  import { ref, onMounted } from 'vue';
  import { useRouter, useRoute } from 'vue-router';
  import axios from 'axios'; // Ensure axios is imported
  import Footer from '../components/Footer.vue';
  import { getSessionStorage, setLocalStorage, removeLocalStorage } from '../common.js';
  
  export default {
	name: 'UserAddress',
	components: {
	  Footer
	},
	setup() {
	  const router = useRouter();
	  const route = useRoute();
	  const businessId = route.query.businessId;
	  const user = ref({});
	  const deliveryAddressArr = ref([]);
  
	  // 获取用户信息并加载地址列表
	  onMounted(() => {
		const storedUser = getSessionStorage('user');
		if (storedUser) {
		  user.value = storedUser;
		}
		listDeliveryAddressByUserId();
	  });
  
	  // 获取性别过滤
	  const getSex = (sex) => {
		return sex === 1 ? '先生' : '女士';
	  };
  
	  // 查询送货地址
	  const listDeliveryAddressByUserId = () => {
		axios
		  .get(`/DeliveryAddress/userId/${user.value.userId}`)
		  .then(response => {
			deliveryAddressArr.value = response.data;
		  })
		  .catch(error => {
			console.error(error);
		  });
	  };
  
	  // 设置默认送货地址并跳转
	  const setDeliveryAddress = (deliveryAddress) => {
		setLocalStorage(user.value.userId, deliveryAddress);
		router.push({ path: '/orders', query: { businessId } });
	  };
  
	  // 跳转到新增地址页面
	  const toAddUserAddress = () => {
		router.push({ path: '/addUserAddress', query: { businessId } });
	  };
  
	  // 编辑地址
	  const editUserAddress = (daId) => {
		router.push({ path: '/editUserAddress', query: { businessId, daId } });
	  };
  
	  // 删除地址
	  const removeUserAddress = (daId) => {
		if (!confirm('确认要删除此送货地址吗？')) {
		  return;
		}
		axios
		  .delete(`/DeliveryAddress/daId/${daId}`)
		  .then(response => {
			if (response.data > 0) {
			  const deliveryAddress = getSessionStorage(user.value.userId);
			  if (deliveryAddress && deliveryAddress.daId === daId) {
				removeLocalStorage(user.value.userId);
			  }
			  listDeliveryAddressByUserId();
			} else {
			  alert('删除地址失败！');
			}
		  })
		  .catch(error => {
			console.error(error);
		  });
	  };
  
	  return {
		businessId,
		user,
		deliveryAddressArr,
		getSex,
		setDeliveryAddress,
		toAddUserAddress,
		editUserAddress,
		removeUserAddress
	  };
	}
  };
  </script>
  
  <style scoped>
  /*************** 总容器 ***************/
  .wrapper {
	width: 100%;
	height: 100%;
	background-color: #f5f5f5;
  }
  
  /*************** header ***************/
  .wrapper header {
	width: 100%;
	height: 12vw;
	background-color: #0097ff;
	display: flex;
	justify-content: space-around;
	align-items: center;
	color: #fff;
	font-size: 4.8vw;
	position: fixed;
	left: 0;
	top: 0;
	z-index: 1000;
  }
  
  /*************** addresslist ***************/
  .wrapper .addresslist {
	width: 100%;
	margin-top: 12vw;
	background-color: #fff;
  }
  
  .wrapper .addresslist li {
	width: 100%;
	box-sizing: border-box;
	border-bottom: solid 1px #ddd;
	padding: 3vw;
	display: flex;
  }
  
  .wrapper .addresslist li .addresslist-left {
	flex: 5;
	user-select: none;
	cursor: pointer;
  }
  
  .wrapper .addresslist li .addresslist-left h3 {
	font-size: 4.6vw;
	font-weight: 300;
	color: #666;
  }
  
  .wrapper .addresslist li .addresslist-left p {
	font-size: 4vw;
	color: #666;
  }
  
  .wrapper .addresslist li .addresslist-right {
	flex: 1;
	font-size: 5.6vw;
	color: #999;
	cursor: pointer;
	display: flex;
	justify-content: space-around;
	align-items: center;
  }
  
  /*************** 新增地址部分 ***************/
  .wrapper .addbtn {
	width: 100%;
	height: 14vw;
	border-top: solid 1px #ddd;
	border-bottom: solid 1px #ddd;
	background-color: #fff;
	margin-top: 4vw;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 4.5vw;
	color: #0097ff;
	user-select: none;
	cursor: pointer;
  }
  
  .wrapper .addbtn p {
	margin-left: 2vw;
  }
  </style>
  